import pandas as pd
import json
import os

def load_data(file_path):
    """
    加载所有数据文件并返回数据框字典。
    """
    files = {
        "dictionary": "data_dictionary.csv",
        "medal_counts": "summerOly_medal_counts.csv",
        "hosts": "summerOly_hosts.csv",
        "programs": "summerOly_programs.csv",
        "athletes": "summerOly_athletes.csv"
    }

    # cSpell:ignore dataframes
    dataframes = {}
    for name, filename in files.items():
        file_path_full = file_path + filename
        try:
            df = pd.read_csv(file_path_full, encoding="latin1")
            dataframes[name] = df
        except Exception as e:
            print(f"Error loading {filename}: {e}")
            dataframes[name] = None

    return dataframes


def print_dataframes(dataframes):
    """
    使用红色字体打印每个数据框的前几行。
    """
    for name, df in dataframes.items():
        if df is not None:
            print(f"\033[91m{name.capitalize()} Data:\033[0m")
            print(df.head(), "\n")
        else:
            print(f"\033[91m{name.capitalize()} Data: Failed to load.\033[0m\n")


def load_json(file_path):
    """
    从指定的 JSON 文件中加载数据。
    参数:
        file_path (str): JSON 文件的路径。
    返回:
        dict 或 list: 加载的 JSON 数据。
    异常:
        FileNotFoundError: 如果文件不存在。
        json.JSONDecodeError: 如果文件格式错误。
    """
    # 检查文件是否存在
    if not os.path.exists(file_path):
        raise FileNotFoundError(f"文件 {file_path} 不存在，请检查路径是否正确。")
    
    # 尝试读取 JSON 文件
    try:
        with open(file_path, "r", encoding="utf-8") as file:
            data = json.load(file)
        return data
    except json.JSONDecodeError as e:
        raise json.JSONDecodeError(f"文件 {file_path} 格式错误，请检查是否为有效的 JSON 文件。详细错误信息：{e}")



if __name__ == "__main__":
    # 设置文件路径
    file_path = "./data/"  # 替换为你的文件路径

    # 加载数据
    dataframes = load_data(file_path)

    # 打印数据框
    print_dataframes(dataframes)